package me.zhengjie.base;

import cn.hutool.core.lang.Filter;

import java.io.Serializable;

/**
 * 枚举基础接口
 * @param <K> code的类型
 * @param <V> desc的类型
 */
public interface BaseEnum<K, V extends Serializable> {
    K code();
    V desc();

    static <T> T findOne(T[] array, Filter<T> filter) {
        if (null != array && null != filter) {
            for (T t : array) {
                if (filter.accept(t)) {
                    return t;
                }
            }
        }
        return null;
    }
}
